import emojiMap from './emojiMap.js';
  // 公共emoji映射表（键：文字/词组，值：emoji组合）

// 加密函数：文字 → emoji
function encryptToEmoji(text) {
  const chars = text.split('');
  let emojiResult = '';

  // 遍历字符，优先匹配多字词
  for (let i = 0; i < chars.length; i++) {
    // 尝试匹配多字词（从长到短）
    let matched = false;
    for (let len = 3; len > 0; len--) { // 最多检查3个字的词
      if (i + len > chars.length) continue;
      const phrase = chars.slice(i, i + len).join('');
      if (emojiMap[phrase]) {
        emojiResult += emojiMap[phrase];
        i += len - 1; // 跳过多字词长度
        matched = true;
        break;
      }
    }
    if (!matched) {
      // 单字匹配或默认随机emoji
      emojiResult += emojiMap[chars[i]] || getRandomEmoji();
    }
  }

  return emojiResult;
}

// 解密函数：emoji → 文字
function decryptFromEmoji(emojiStr) {
  // 将emoji字符串拆分为数组（处理可能的分割问题）
  const emojiArray = splitEmojis(emojiStr);
  let textResult = '';
  let i = 0;

  // 创建反向映射表（值->键）
  const reverseMap = {};
  for (const [word, emoji] of Object.entries(emojiMap)) {
    reverseMap[emoji] = word;
  }

  while (i < emojiArray.length) {
    let found = false;
    
    // 尝试匹配最长的emoji组合（从多字词开始）
    for (let len = 2; len >= 1; len--) { // 检查2字词或单emoji
      if (i + len > emojiArray.length) continue;
      const emojiPhrase = emojiArray.slice(i, i + len).join('');
      
      // 查找匹配的emoji组合
      if (reverseMap[emojiPhrase]) {
        textResult += reverseMap[emojiPhrase];
        i += len;
        found = true;
        break;
      }
    }
    
    if (!found) {
      // 未匹配的emoji保留原样（或跳过）
      textResult += `[未知Emoji:${emojiArray[i]}]`;
      i++;
    }
  }

  return textResult;
}

// 辅助函数：拆分emoji字符串（处理组合emoji）
function splitEmojis(str) {
  return str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || [];
}

// 辅助函数：生成随机emoji
function getRandomEmoji() {
  const emojis = ['🍎', '🐱', '🌈', '🚀', '🎮', '🍕', '🌟', '🎵'];
  return emojis[Math.floor(Math.random() * emojis.length)];
}

// 导出函数供其他文件使用
export {
  encryptToEmoji,
  decryptFromEmoji
};